﻿using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using transferObjects;
using System.Data.SqlClient;
using System.Collections.Generic;
using dao.sqlServer2005;
using dao;
using System.IO;
using System.Data.OleDb; 

/// <summary>
/// Descripción breve de PrestadorServicioService
/// </summary>
namespace controls
{
    public class LeerExcel
    {
        public List<Trabajador> Procesar()
        {
            List<Trabajador> trabajadores;
            String path = @"C:\trabajadores\trabajadores_.xls";
            FileInfo archivo = new FileInfo(path);

            OleDbConnection conn = null;
            OleDbCommand cmd = null;

            string nombreHoja = archivo.Name.Substring(0, archivo.Name.IndexOf("."));

            try
            {
                conn = new OleDbConnection(this.GenerarCadenaConexion(archivo.FullName));
                conn.Open();
                cmd = new OleDbCommand("select * from [" + nombreHoja + "$]", conn);
                OleDbDataReader reader = cmd.ExecuteReader();

                trabajadores = new List<Trabajador>();
                Trabajador trabajador;

                //aca agrego al objeto y lo retorno al service!!
                while (reader.Read())
                {
                    //trabajador = new Trabajador();
                    //Console.WriteLine("{0}, {1}", contador++, reader.GetString(0));
                    //retorno = reader.GetString(0);

                    //
                    trabajador = new Trabajador();
                    trabajador.TrabajadorID = reader.GetString(0); //RUT
                    trabajador.EmpresaID = reader.GetString(1);
                    trabajador.Nombres = reader.GetString(2);
                    trabajador.Apellidos = reader.GetString(3);
                    /*
                    trabajador.TelRedFija = reader.GetString(4);
                    trabajador.TelCelular = reader.GetString(5);
                    trabajador.NivelEduc = reader.GetString(6);
                    trabajador.FechaNac = reader.GetString(7);
                    trabajador.AnosAprobados = reader.GetString(8);
                    trabajador.EstadoCivil = reader.GetString(9);
                    trabajador.CargasFam = reader.GetString(10);
                    trabajador.Cargo = reader.GetString(11);
                    trabajador.Faena = reader.GetString(12);
                    trabajador.HorarioConv = reader.GetString(13);
                    trabajador.Calle = reader.GetString(14);
                    trabajador.Numero = reader.GetString(15);
                    trabajador.Dpto_Oficina = reader.GetString(16);
                    trabajador.Region = reader.GetString(17);
                    trabajador.Provincia = reader.GetString(18);
                    trabajador.TipoContrato = reader.GetString(19);
                    trabajador.EstadoContrato = reader.GetString(20);
                    trabajador.InicioContrato = reader.GetString(21);
                    trabajador.TerminoContrato = reader.GetString(22);
                    trabajador.Afp = reader.GetString(23);
                    trabajador.Isapre = reader.GetString(24);
                    trabajador.NombreEmergencia = reader.GetString(25);
                    trabajador.TelRedFijaEmergencia = reader.GetString(26);
                    trabajador.TelCelularEmergencia = reader.GetString(27);
                    trabajador.Observaciones = reader.GetString(28);
                     */
                    trabajadores.Add(trabajador);

                }


                reader.Close();
                cmd.Dispose();
                conn.Close();
            }
            catch (Exception ex)
            {
                cmd.Dispose();
                conn.Close();

                throw ex;
            }

            return trabajadores;
        }


         private string GenerarCadenaConexion(string nombreArchivo) 
         {
             string cadena_conexion = "Provider=Microsoft.Jet.OLEDB.4.0;"
                 + "Data Source=" + nombreArchivo + ";"
                 + "Extended Properties=Excel 8.0";
     

            return cadena_conexion;
        }
       

    }
}
